home *** CD-ROM | disk | FTP | other *** search
- ***************************************************************************
- *********** ***********
- *********** ***********
- *********** Description des différents formats SoundTracker ***********
- *********** ***********
- *********** Format MegaTracker par Axel Follet et Simplet ***********
- *********** Version 1.1 ***********
- *********** ***********
- *********** ***********
- *********** Par Simplet / FATAL DESIGN ***********
- *********** ***********
- ***************************************************************************
-
-
- Structure du Header d'un fichier MGT :
- --------------------------------------
-
- RsReset
-
- MGT_Chunk rs.b 3 * "MGT"
- MGT_Version rs.b 1 * $11, $xy pour Version x.y
- MGT_Copyright rs.b 4 * "╜MCS"
- MGT_Nb_Voices rs.w 1 * Nombre de Voies
- MGT_Nb_Musics rs.w 1 * Nombre de Musiques
- MGT_Nb_Orders rs.w 1 * Nombre de Positions
- MGT_Nb_Patterns rs.w 1 * Nombre de Patterns
- MGT_Nb_Tracks rs.w 1 * Nombre de Pistes sauvées (sans la 0)
- MGT_Nb_Samples rs.w 1 * Nombre de Samples
- MGT_Attributes rs.w 1 * Inutilisé pour l'instant
- MGT_Reserved rs.l 1 * Réservé pour le futur
-
- MGT_Musics rs.l 1 * Adresse des Musics
- MGT_Sequences rs.l 1 * Adresse des Sequences
- MGT_Samples_Infos rs.l 1 * Adresse des Infos Samples
- MGT_Patterns rs.l 1 * Adresse des Patterns
- MGT_Tracks_Ptr rs.l 1 * Adresse des Pointeurs de Piste
- MGT_Samples_Data rs.l 1 * Adresse des Données Samples
- MGT_Samples_Length rs.l 1 * Longueur Totale des Samples
- MGT_Tracks_Length rs.l 1 * Longueur des Tracks Dépackées
-
- * Les différentes sections peuvent être n'importe où dans le fichier sauf
- * les pistes packées et les samples qui se trouvent obligatoirement dans
- * cet ordre à la fin du fichier...
-
- Structure d'une Music :
- -----------------------
-
- RsReset
-
- Music_Name rs.b 32 * Nom de la Musique
- Music_Sequence rs.l 1 * Adresse de la Sequence
- Music_Length rs.w 1 * Longueur de la Sequence
- Music_Restart rs.w 1 * Position de Rebouclage
- Music_Initial_Tempo rs.b 1 * Tempo initial
- Music_Initial_Speed rs.b 1 * Vitesse initiale
- Music_Initial_Global rs.w 1 * Volume Global de Fade-Out initial
- Music_Initial_Master_L rs.b 1 * Volumes Master Gauche et Droit
- Music_Initial_Master_R rs.b 1 * de 0 à 255, Volume Normal = 32
- Music_Initial_Stereos rs.w Nb_Voices
- * Positions stéréo pour chacune des voies (en nombre Nb_Voices)
- * 2 octets, Volumes Gauche et Droit, de 0 à 255 chacun
- * Pour un volume normal, la somme Gauche+Droit fait 255 ou 256.
-
- Structure d'infos sample et de header d'instrument MGS :
- --------------------------------------------------------
-
- RsReset
-
- Sample_Name rs.b 32 * 32 caractères
-
- Sample_Start rs.l 1 * Adresse début du Sample
- Sample_Length rs.l 1 * Taille du sample en unités
- Sample_Loop_Start rs.l 1 * Offset début Boucle en unités
- Sample_Loop_Length rs.l 1 * Taille de la Boucle en unités
- Sample_Buffer_Length rs.l 1 * Taille Minimale du Buffer en unités
- Sample_End_Length rs.l 1 * Taille de la fin du sample après le buffer
-
- Sample_Base rs.l 1 * Fréquence de Replay pour le DO-4
- Sample_Volume rs.w 1 * Volume par défaut de 0 à 1024
- Sample_Panoramic rs.b 2 * Volumes Gauche et Droit de 0 à 255
- * par défaut, 0 si y'en a pas
- Sample_Attributes rs.b 1 * bits 0 et 1 : Loop Mode -->
- * 0 = Loop Off, 1 = Forward Loop
- * 2 = Ping-Pong Loop, 3 réservé
-
- Sample_Fine_Tune rs.b 1 * de 0 à 15 = 0 à 7 et -8 à -1
-
- rs.b 1 * Inutilisé
- Sample_Drum_Note rs.b 1 * Informations stockées
- Sample_Drum_Volume rs.b 1 * par le Tracker
- Sample_Drum_Command rs.b 1 * pour le mode
- Sample_Drum_Parameter rs.w 1 * Drum Edit
-
- Sample_Midi_Note rs.l 1 * Note au format MIDI
- Sample_Reserved rs.l 1 * 4 octets Réservés
-
- Sample_Size rs.b 0 * 80 octets
-
- Table des Sequences :
- ---------------------
-
- RsReset
-
- Sequences rs.w Nb_Orders
- * Numéros de Pattern sur un word pour chaque Position des Séquences
-
- Structure d'un Pattern :
- ------------------------
-
- RsReset
-
- Pattern_Length rs.w 1 * Nombre de Lignes du Pattern
- Pattern_Tracks rs.w Nb_Voices * Numéro de chaque Piste
- * pour chaque voie
- Table des Adresses de Piste :
- -----------------------------
-
- RsReset
-
- Tracks_Adresses rs.l Nb_Tracks * Adresses des Pistes
-
- Structure d'une Piste (Track) :
- -------------------------------
-
- RsReset
-
- Track_Length rs.w 1 * Nombre de Lignes de la Piste
- Track_Data rs.w 1 * Infos Note Packées
-
- Structure d'une Info Note Packée :
- ----------------------------------
-
- Octet de Commande : bit 2 à 1 pour indiquer Note
- bit 3 à 1 pour indiquer No de Sample
- bit 4 à 1 pour indiquer Volume
- bit 5 à 1 pour indiquer Effet
- bit 6 à 1 pour indiquer Paramètre 1
- bit 7 à 1 pour indiquer Paramètre 2
-
- bits 0 et 1 : 0 à 3
- Donne le nombre de lignes vides avant de coder
- la ligne indiquée par les bits 2 à 7.
-
- Suivent les octets de données suivant les bits 2 à 7
-
- Structure d'une Info Note dépackée :
- ------------------------------------
-
- *** Les effets prévus mais non-encore implémentés sont précédés de ***
-
- Octet 0 : Numéro de la Note à jouer
- 0 = No New Note Ne joue pas de nouvelle note
- 1 = Note Cut Coupe le sample
- Sinon :
- 12 + Numéro de note de 0 à 11 + 12 * Octave
- Il y a 8 octaves : de 0 à 7, les mêmes que dans les S3M
- les octaves 3,4,5 sont les octaves Amiga 1,2,3
-
- Octet 1 : Numéro de Sample = de 1 à 255, 0 = pas de changement
-
- Octet 2 : Colonne de Volume identique au format XM
- 0 (--) = Pas de changement
-
- 10 à 50 (00 à 40) = Nouveau Volume échelle Amiga,
- ensuite multiplié par 16.
-
- 60 à 6F (<0 à <F) = Volume Slide Down
- 70 à 7F (>0 à >F) = Volume Slide Up
- 80 à 8F (-0 à -F) = Fine Volume Slide Down
- 90 à 9F (+0 à +F) = Fine Volume Slide Up
- A0 à AF (S0 à SF) = Set Vibrato Speed
- B0 à BF (V0 à VF) = Vibrato
- C0 à CF (P0 à PF) = Set Panoramic Pos
- D0 à DF (L0 à LF) = Panning Slide Left
- E0 à EF (R0 à RF) = Panning Slide Right
- F0 à FF (T0 à TF) = Tone Portamento
-
- Octet 3 : Numéro d'effet
-
- Octets 4 et 5 : Paramètres de l'effet
-
-
- Les Effets dérivés du Protracker (2.2a) :
- -----------------------------------------
-
- Les octets de paramètre sont notés XYZT
- Le Volume est Linéaire et varie de 0 à 1024,
- 16 fois plus précis que pour les modules Amiga
- => Volumes Amiga décalés d'un chiffre hexadécimal vers la gauche.
- Les Périodes pour les portamentos ou le vibrato sont les mêmes que sur
- Amiga, mais 256 fois plus précises
- => Periodes Amiga décalées de deux chiffres hexadécimaux vers la gauche.
-
-
- Numéro Nom Description
-
- 0 Rien ou Arpeggio Changement rapide entre 3 notes
- Note normale, Note + X et Note + Y
-
- Si $ZT différent de 0, alors l'arpègge
- est effectué sur 5 Notes :
- Note Normale, + X, + Y, + Z et + T
-
- 1 Portamento Up Augmente la Hauteur de la Note
- en diminuant sa période de $XYZT à chaque
- 'tick' de chaque ligne
-
- 2 Portamento Down Diminue la Hauteur de la Note
- en augmentant sa période de $XYZT à chaque
- 'tick' de chaque ligne
-
- 3 Tone Portamento 'Liaison' entre deux Notes, Rapproche la
- période actuelle de la période de la Note
- désirée en l'augmentant ou la diminuant de
- $XYZT à chaque Ligne (vitesse)
-
- 4 Vibrato Fait osciller la période (à chaque 'tick')
- X est la vitesse
- YZT est l'amplitude
-
- 5 Tone Portamento Conserve l'effet de Tone Portamento
- + Volume Slide et effectue un Volume Slide (Effet No A)
-
- 6 Vibrato Conserve l'effet de Vibrato
- + Volume Slide et effectue un Volume Slide (Effet No A)
-
- 7 Tremolo Vibrato sur le Volume, même fonctionnement
-
- 8 Set Fine Panoramic Pos $XY Fixe la balance de la voie :
- $00 Gauche..$80 Milieu..$ff Droite
-
- 9 Sample Offset Augmente le point de départ du sample
- de $XYZT0 octets.
-
- A Volume Slide Augmente le Volume de $XY ou
- le diminue de $ZT à chaque 'tick' de chaque
- ligne et $XY est prioritaire
-
- B Position Jump Saute à la position numéro $XYZT
- de la séquence des patterns.
-
- C Volume Change Fixe le Volume Courant à $XYZT
-
- D Pattern Break Passe à la position suivante dans la
- séquence et commence le pattern à la ligne
- $XYZT, attention, ce n'est plus un codage
- BCD (décimal) mais Hexadécimal !!
-
- F Set Speed/Tempo Speed = $XY de 1 à 255 0 = pas de
- Tempo = $ZT de 16 à 255 changement
-
-
- Les Effets Etendus EX se retrouvent de $10 à $1f
-
- 10 Set Filter Ignoré, pour l'instant, car il est
- prévu de rajouter des effets sur le son
- type filtre, equalizer, pitch bending...
-
- 11 Fine Portamento Up Idem Portamento Up, sauf que la
- période n'est diminuée de $XYZT qu'une
- seule fois par ligne (au 1er 'tick')
-
- 12 Fine Portamento Down Idem Portamento Down, sauf que la
- période n'est augmentée de $XYZT qu'une
- seule fois par ligne (au 1er 'tick')
-
- 13 Set Glissando Control Y : 1 = On, 0 = Off
- A utiliser avec le Tone Portamento
- Si Off, on a un Tone Portamento normal
- sinon le glissement entre les deux
- périodes se fait demi-ton par demi-ton
-
- 14 Set Vibrato Waveform Y Fixe le type de courbe utilisée pour
- le Vibrato :
- 0: Sinusoïde (par défaut)
- 1: Ramp Down
- 2: Onde Carrée
- *3: Aléatoire (l'un des 3 autres)
-
- +4: pour ne pas réinitialiser
- la courbe à chaque nouvelle note
-
- 15 Set Fine Tune $Y Fixe le Fine Tune du Sample :
- de 0 à $f <=> de 0 à 7 et -8 à -1
- huitièmes de demi-ton
-
- 16 Pattern Loop $XYZT vaut 0 pour fixer le début de la
- boucle. Sinon, c'est le nombre de fois
- à répéter jusqu'à cette position.
-
- 17 Set Tremolo Waveform Fixe le type de courbe utilisée pour
- le Tremolo. Idem commande $14
-
- 18 Set Panoramic Position $Y Fixe la balance de la voie :
- $0 Gauche...7/8 Milieu...$f Droite
-
- 19 Note Retrig Rejoue la note plusieurs fois entre
- + Volume Slide deux lignes. $XY est le nombre de
- 'ticks' au bout desquels on rejoue
- la note.
- Avec un Speed de 6, si on indique 3, la note ne sera rejouée
- qu'une seule fois donc 2 fois en tout (6/3).
- Avec un Speed de 9, si on indique 2, la note sera rejouée
- 3 fois de plus donc 4 fois en tout (9/2=4.5)
-
- En plus, $T permet de spécifiee le type de modification de
- volume à appliquer à chaque fois que le sample est rejoué :
- 0: rien 8: rien
- 1: -$10 9: +$10
- 2: -$20 A: +$20
- 3: -$40 B: +$40
- 4: -$80 C: +$80
- 5: -$100 D: +$100
- 6: 2/3 du volume précédent E: 3/2 fois le volume précédent
- 7: 1/3 du volume précédent F: 2 fois le volume précédent
-
-
- 1A Fine Volume Slide Up Augmente le volume de $XYZT au 1er
- 'tick' de la ligne seulement.
-
- 1B Fine Volume Slide Down Diminue le volume de $XYZT au 1er
- 'tick' de la ligne seulement.
-
- 1C Note Cut Coupe la note (Volume 0) au bout de
- $XY 'ticks' dans la ligne. Cela permet
- de faire des notes extrêmement courtes.
-
- 1D Note Delay Ne joue la note qu'au bout de $XY 'ticks'
-
- 1E Pattern Delay Passe au pattern suivant au bout de $XY
- lignes.
-
- ***1F Invert Loop Vitesse en $Y
-
- Les Effets Oktalyzer Amiga :
- ----------------------------
-
- 20 Arpeggio 3 Note - X, Note normale, Note + Y
-
- 21 Arpeggio 4 Note normale, Note + Y,
- Note normale, Note - X
-
- 22 Arpeggio 5 Note + Y, Note + Y, Note normale
-
- 23 Note Slide Augmente le Numéro de la Note (compté en
- demi-tons) de $XY ou le Diminue de $ZT
- à chaque 'tick', $XY est prioritaire
-
- 24 Fine Note Slide Même chose mais seulement une fois par
- Ligne (au premier 'tick')
-
- Les Effets S3M :
- ----------------
-
- 25 Tremor Joue la note pendant $XY 'ticks'
- et la coupe pendant $ZT etc..
-
- Les Effets MegaTracker :
- ------------------------
-
- 30 Set Master Mix Volume Fixe le Volume Maitre de Mixage :
- $XY pour le canal Gauche
- $ZT pour le canal Droit
-
- 31 Set Global Volume Fixe le Volume Global de Fade-Out à
- $XYZT de 0 à 1024.
-
- 32 Global Volume Slide Augmente le Volume Global de $XY ou
- le diminue de $ZT à chaque 'tick' de chaque
- ligne et $XY est prioritaire
-
- 33 Fine Global Vol Slide Augmente le Volume Global de $XY ou
- le diminue de $ZT au 1er 'tick' de la ligne
- seulement et $XY est prioritaire
-
- 34 Set Stereo Fixe la panoramique de la voie :
- Volume Gauche à $XY
- et Volume Droit à $ZT.
-
- 35 Stereo Slide Augmente le Volume Gauche de $XY
- et le Volume Droit de $ZT à chaque
- 'tick' de chaque ligne.
-
- 36 Fine Stereo Slide Augmente le Volume Gauche de $XY
- et le Volume Droit de $ZT au
- 1er 'tick' de la ligne seulement.
-
- 37 Set Base Fixe la fréquence de Replay du DO-4 à
- $XYZT Hz. Intervalle 1500 à 50066 Hz.
-
- 38 Release Sample Joue la fin du Sample après la Boucle.
-
- ***39 Inverse Sample Joue le sample à l'envers.
-